package com.example.jsoup.kuang.question;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.net.URL;

/**
 * Created by HMF on 2021/10/11 15:47
 */
public class Question {

    public static void main(String[] args) throws Exception {  // main函数
        /// 获取请求   https://search.jd.com/Search?keyword=java  (在京东网页商场，搜索java，前半部分的url地址就是这个）
        /// 前提，需要联网，不能获取使用 ajax 请求的数据（因为要模拟浏览器发送请求）
//        String url = "https://www.kczg.org.cn/needs?category=0&budget=0&province=0&city=0&region=0&type=1&page=1";
        String url = "https://www.kczg.org.cn/needs/detailThe?type=2&id=3198";

//        // ---------------------------------
//
//        /// 解析网页，（Jsoup返回的 Document 就是浏览器的 Document 对象） document 就是获取到的真个html页面源码，即包括<html>标签的所有内容
        Document document = Jsoup.parse(new URL(url), 5000);   // 请求的时间可以设置大一点，确保足够的时间请求
        System.out.println("document对象是整个html页面源码：；\n" + document);
//
//
//        /// 所有你在js中使用的方法，在这里都可以使用
//        /// 特点hmf：先获取你需要的目标内容的外层大 div，然后再一步一步获取目标内容
//        Element parent_div = document.getElementsByClass("list-blocks").first();/// 目标数据父 div 的 id 值 J_goodsList
//
//        /// element 与 element.html() 区别：
//        /// element 的打印输出 包含 节点本身（包含节点本身可以更好的知道是获取到的什么html内容）
//        /// element.html() 的打印输出 不包含 节点本身
////        System.out.println("\nparent_div::::: \n" + parent_div);  /// 打印查看获取到层 element 的内容
////        System.out.println(parent_div.html());
//
//        /// 获取所有的li元素，通过刚刚获取的父div parent_div 直接取 li 标签
//        Elements div_list = parent_div.getElementsByClass("list-needs");
//
////        System.out.println("\ndiv_list:::::  \n" + div_list);
//
////        System.out.println("list.eq(0)hmfhmf::::: \n" + lis.eq(0));  // 输出第一个list元素
//
//        System.out.println();
//        System.out.println();
//        System.out.println();
//
//        // 京东书籍图片链接具体获取流程
//        //  ********************************************* 关键获取流程 start *********************************************************
//        // 一步一步获取每一个元素的子元素，直到找到目标 元素<img> 的属性 data-lazy-img 的值，【这里的 first() 方法非常关键】
//        Element div_0 = div_list.get(1);
//        System.out.println("div.get(0)::::: hmf::: \n" + div_0);
//
//        Element p_0 = div_0.getElementsByTag("p").first();
//        System.out.println("\np_0 :::: hmf:::  \n" + p_0);
//        System.out.print(p_0.text() + "     ");
//
//        Element tag = div_0.getElementsByClass("tag").first();
//        System.out.println("" + tag.text());
//
////
////        Elements tag_a = p_img.first().getElementsByTag("a");
//////        System.out.println("tag_a:::: hmf:::: \n" + tag_a);
////
////        Elements img_Element = tag_a.first().getElementsByTag("img");
//////        System.out.println("img_path:::::hmf:::: \n" + img_Element);
////
////        String img_path = img_Element.attr("data-lazy-img");
////        System.out.println("tag_img:::hmf:::: \n" + img_path);
//
//        // 京东图片图书图片链接
////        String img_path = lis.get(3).getElementsByClass("p-img").first().getElementsByTag("a").first().getElementsByTag("img").attr("data-lazy-img");
////        System.out.println("hhhhhhhhh:::::: \n" + "http:" + img_path + "\n");
//        //  ********************************************* 关键获取流程 end *********************************************************
//
//
//        // ******************************************** p-name    start***********************************************************************************************
////        Element li_0 = lis.get(0);
////        System.out.println("lis.get(0)::::: hmf::: \n" + li_0);
//
////        Elements p_name = li_0.getElementsByClass("p-name");
////        System.out.println("p_img :::: hmf:::  \n" + p_name);
////
////        Elements tag_a = p_name.first().getElementsByTag("a");
////        System.out.println("tag_a:::: hmf:::: \n" + tag_a);
//
////        Elements em_Element = tag_a.first().getElementsByTag("em");
////        System.out.println("img_path:::::hmf:::: \n" + em_Element);
//
////        String em_text = em_Element.text().split(" ")[0];
////        System.out.println("em_text:::hmf:::: \n" + em_text);
//
////        String name = li_0.getElementsByClass("p-name").first().getElementsByTag("a").first().getElementsByTag("em").text().split(" ")[0];
////        System.out.println("jd_book_name::::: \n" + name);
//        // ******************************************** p-name   end***********************************************************************************************
//
//
//        System.out.println(); // 输出格式控制
//        System.out.println();
//        System.out.println();
//
//
//        // ----------------------------------------------------------------- 分割线 -------------------------------------------------------------------------
//        int n = 0;
//
//        /// 遍历获取到的 li 元素列表
////        for (Element li : lis) {
////            n++;
////
////            if (n > 30) { /// 控制输出 n 条数据，这里只是演示就不需要那么多的数据了
////                break;
////            }
////
////            // 京东图书名
////            String jd_book_name = li.getElementsByClass("p-name").first().getElementsByTag("a").first().getElementsByTag("em").text();
////            System.out.println("jd_book_name::::: \n" + "--  " + jd_book_name + "");
////
////            // 京东图书价格 text() 表示获取标签里的文本  如：￥63.2
//////            String jd_book_price = li.getElementsByClass("p-price").eq(0).text(); // 有人民币符号 并且 有 原价价格 和 plus会员价格  如：￥9.99  ￥9.00
////            String jd_book_price = li.getElementsByClass("p-price").eq(0).first().getElementsByTag("i").text(); // 无人民币符号 并且是 原价价格  如：9.90
////            System.out.println("jd_book_price::::: \n" + "--  " + jd_book_price + "");
////
////            // 京东图片链接
////            String jd_img_path = li.getElementsByClass("p-img").first().getElementsByTag("a").first().getElementsByTag("img").attr("data-lazy-img");
////            System.out.println("jd_img_path::::: \n" + "--  " + "http:" + jd_img_path + "\n");
////
////        }
    }
}
